// 引入login接口，对其进行封装
import { login, getProfile, getUserDetailById } from '@/api/user'
// import store from '..'
// import store from '..'
const state = {
  token: localStorage.getItem('token-hr') || '',
  profile: {}
}
const mutations = {
  // 获取token
  getToken(state, data) {
    localStorage.setItem('token-hr', data)
    localStorage.setItem('loginTime', Date.now())
    state.token = data
  },
  // 存储数据
  setProfile(state, data) {
    state.profile = data
  },
  // 清除token和数据
  removeToken(state) {
    state.token = ''
    // 清除本地缓存
    localStorage.removeItem('token-hr')
  },
  // 清除用户基本信息
  removeProfile(state) {
    state.profile = {}
  }
}
const actions = {
  // 登录接口
  async  login(store, data) {
    const res = await login(data)
    store.commit('getToken', res)
    console.log('登录成功')
  },
  // 获取用户基本资料接口的封装，保存用户基本资料的相关信息
  async getProfile(store) {
    const res = await getProfile()
    // 获取员工基本信息，根据用户基本资料里头的id发送请求，将两个数据合并在一个对象中
    const detail = await getUserDetailById(res.userId)
    // 让mutations 帮更改satate中的数据
    store.commit('setProfile', {
      // 合并数据在一个对象中
      ...res,
      ...detail
    })
  }
}
export default {
  namespaced: true, // 开启了一个命名空间锁
  state,
  mutations,
  actions
}
